home *** CD-ROM | disk | FTP | other *** search
- package org.apache.xalan.xpath;
-
- import org.apache.xalan.xpath.xml.XMLParserLiaisonDefault;
- import org.w3c.dom.DocumentFragment;
- import org.w3c.dom.Node;
- import org.w3c.dom.NodeList;
- import org.w3c.dom.Text;
- import org.xml.sax.SAXException;
-
- public class XNodeSet extends XObject {
- public XNodeSet(NodeList var1) {
- super(var1);
- }
-
- public XNodeSet() {
- super(new MutableNodeListImpl());
- }
-
- public XNodeSet(Node var1) {
- super(new MutableNodeListImpl());
- if (var1 != null) {
- ((MutableNodeList)super.m_obj).addNode(var1);
- }
-
- }
-
- public int getType() {
- return 4;
- }
-
- private String getTypeString() {
- return "#NODESET";
- }
-
- double getNumberFromNode(Node var1) {
- return XString.castToNum(getStringFromNode(var1));
- }
-
- public double num() {
- NodeList var1 = this.nodeset();
- return var1.getLength() > 0 ? this.getNumberFromNode(var1.item(0)) : Double.NaN;
- }
-
- public boolean bool() {
- return this.nodeset().getLength() > 0;
- }
-
- static String getStringFromNode(Node var0) {
- switch (var0.getNodeType()) {
- case 1:
- case 9:
- return XMLParserLiaisonDefault.getNodeData(var0);
- case 2:
- case 7:
- case 8:
- return var0.getNodeValue();
- case 3:
- case 4:
- return ((Text)var0).getData();
- case 5:
- case 6:
- default:
- return XMLParserLiaisonDefault.getNodeData(var0);
- }
- }
-
- public String str() {
- NodeList var1 = this.nodeset();
- return var1.getLength() > 0 ? getStringFromNode(var1.item(0)) : "";
- }
-
- public DocumentFragment rtree(XPathSupport var1) {
- DocumentFragment var2 = var1.getDOMFactory().createDocumentFragment();
- NodeList var3 = this.nodeset();
- int var4 = var3.getLength();
-
- for(int var5 = 0; var5 < var4; ++var5) {
- var2.appendChild(var3.item(var5).cloneNode(true));
- }
-
- return var2;
- }
-
- public NodeList nodeset() {
- return (NodeList)super.m_obj;
- }
-
- public MutableNodeList mutableNodeset() {
- Object var1;
- if (super.m_obj instanceof MutableNodeList) {
- var1 = (MutableNodeList)super.m_obj;
- } else {
- var1 = new MutableNodeListImpl(this.nodeset());
- super.m_obj = var1;
- }
-
- return (MutableNodeList)var1;
- }
-
- public boolean lessThan(XObject var1) throws SAXException {
- boolean var2 = false;
- int var3 = var1.getType();
- if (var3 == 4) {
- NodeList var4 = this.nodeset();
- NodeList var5 = ((XNodeSet)var1).nodeset();
- int var6 = var4.getLength();
- int var7 = var5.getLength();
-
- for(int var8 = 0; var8 < var6; ++var8) {
- String var9 = getStringFromNode(var4.item(var8));
-
- for(int var10 = 0; var10 < var7; ++var10) {
- String var11 = getStringFromNode(var5.item(var10));
- if (var9.compareTo(var11) < 0) {
- var2 = true;
- break;
- }
- }
- }
- } else if (var3 == 1) {
- double var12 = this.bool() ? (double)1.0F : (double)0.0F;
- double var18 = var1.num();
- var2 = var12 < var18;
- } else if (var3 == 2) {
- NodeList var13 = this.nodeset();
- int var16 = var13.getLength();
- double var19 = var1.num();
-
- for(int var26 = 0; var26 < var16; ++var26) {
- double var30 = this.getNumberFromNode(var13.item(var26));
- if (var30 < var19) {
- var2 = true;
- break;
- }
- }
- } else if (var3 == 5) {
- double var14 = var1.num();
- if (var14 != Double.NaN) {
- NodeList var20 = this.nodeset();
- int var23 = var20.getLength();
-
- for(int var27 = 0; var27 < var23; ++var27) {
- double var31 = this.getNumberFromNode(var20.item(var27));
- if (var31 < var14) {
- var2 = true;
- break;
- }
- }
- } else {
- NodeList var21 = this.nodeset();
- int var24 = var21.getLength();
- String var28 = var1.str();
-
- for(int var32 = 0; var32 < var24; ++var32) {
- String var33 = getStringFromNode(var21.item(var32));
- if (var33.compareTo(var28) < 0) {
- var2 = true;
- break;
- }
- }
- }
- } else if (var3 == 3) {
- NodeList var15 = this.nodeset();
- int var17 = var15.getLength();
- String var22 = var1.str();
-
- for(int var25 = 0; var25 < var17; ++var25) {
- String var29 = getStringFromNode(var15.item(var25));
- if (var29.compareTo(var22) < 0) {
- var2 = true;
- break;
- }
- }
- } else {
- var2 = this.num() < var1.num();
- }
-
- return var2;
- }
-
- public boolean lessThanOrEqual(XObject var1) throws SAXException {
- boolean var2 = false;
- int var3 = var1.getType();
- if (var3 == 4) {
- NodeList var4 = this.nodeset();
- NodeList var5 = ((XNodeSet)var1).nodeset();
- int var6 = var4.getLength();
- int var7 = var5.getLength();
-
- for(int var8 = 0; var8 < var6; ++var8) {
- String var9 = getStringFromNode(var4.item(var8));
-
- for(int var10 = 0; var10 < var7; ++var10) {
- String var11 = getStringFromNode(var5.item(var10));
- if (var9.compareTo(var11) <= 0) {
- var2 = true;
- break;
- }
- }
- }
- } else if (var3 == 1) {
- double var12 = this.bool() ? (double)1.0F : (double)0.0F;
- double var18 = var1.num();
- var2 = var12 <= var18;
- } else if (var3 == 2) {
- NodeList var13 = this.nodeset();
- int var16 = var13.getLength();
- double var19 = var1.num();
-
- for(int var26 = 0; var26 < var16; ++var26) {
- double var30 = this.getNumberFromNode(var13.item(var26));
- if (var30 <= var19) {
- var2 = true;
- break;
- }
- }
- } else if (var3 == 5) {
- double var14 = var1.num();
- if (var14 != Double.NaN) {
- NodeList var20 = this.nodeset();
- int var23 = var20.getLength();
-
- for(int var27 = 0; var27 < var23; ++var27) {
- double var31 = this.getNumberFromNode(var20.item(var27));
- if (var31 <= var14) {
- var2 = true;
- break;
- }
- }
- } else {
- NodeList var21 = this.nodeset();
- int var24 = var21.getLength();
- String var28 = var1.str();
-
- for(int var32 = 0; var32 < var24; ++var32) {
- String var33 = getStringFromNode(var21.item(var32));
- if (var33.compareTo(var28) <= 0) {
- var2 = true;
- break;
- }
- }
- }
- } else if (var3 == 3) {
- NodeList var15 = this.nodeset();
- int var17 = var15.getLength();
- String var22 = var1.str();
-
- for(int var25 = 0; var25 < var17; ++var25) {
- String var29 = getStringFromNode(var15.item(var25));
- if (var29.compareTo(var22) <= 0) {
- var2 = true;
- break;
- }
- }
- } else {
- var2 = this.num() <= var1.num();
- }
-
- return var2;
- }
-
- public boolean greaterThan(XObject var1) throws SAXException {
- boolean var2 = false;
- int var3 = var1.getType();
- if (var3 == 4) {
- NodeList var4 = this.nodeset();
- NodeList var5 = ((XNodeSet)var1).nodeset();
- int var6 = var4.getLength();
- int var7 = var5.getLength();
-
- for(int var8 = 0; var8 < var6; ++var8) {
- String var9 = getStringFromNode(var4.item(var8));
-
- for(int var10 = 0; var10 < var7; ++var10) {
- String var11 = getStringFromNode(var5.item(var10));
- if (var9.compareTo(var11) > 0) {
- var2 = true;
- break;
- }
- }
- }
- } else if (var3 == 1) {
- double var12 = this.bool() ? (double)1.0F : (double)0.0F;
- double var18 = var1.num();
- var2 = var12 > var18;
- } else if (var3 == 2) {
- NodeList var13 = this.nodeset();
- int var16 = var13.getLength();
- double var19 = var1.num();
-
- for(int var26 = 0; var26 < var16; ++var26) {
- double var30 = this.getNumberFromNode(var13.item(var26));
- if (var30 > var19) {
- var2 = true;
- break;
- }
- }
- } else if (var3 == 5) {
- double var14 = var1.num();
- if (var14 != Double.NaN) {
- NodeList var20 = this.nodeset();
- int var23 = var20.getLength();
-
- for(int var27 = 0; var27 < var23; ++var27) {
- double var31 = this.getNumberFromNode(var20.item(var27));
- if (var31 > var14) {
- var2 = true;
- break;
- }
- }
- } else {
- NodeList var21 = this.nodeset();
- int var24 = var21.getLength();
- String var28 = var1.str();
-
- for(int var32 = 0; var32 < var24; ++var32) {
- String var33 = getStringFromNode(var21.item(var32));
- if (var33.compareTo(var28) > 0) {
- var2 = true;
- break;
- }
- }
- }
- } else if (var3 == 3) {
- NodeList var15 = this.nodeset();
- int var17 = var15.getLength();
- String var22 = var1.str();
-
- for(int var25 = 0; var25 < var17; ++var25) {
- String var29 = getStringFromNode(var15.item(var25));
- if (var29.compareTo(var22) > 0) {
- var2 = true;
- break;
- }
- }
- } else {
- var2 = this.num() > var1.num();
- }
-
- return var2;
- }
-
- public boolean greaterThanOrEqual(XObject var1) throws SAXException {
- boolean var2 = false;
- int var3 = var1.getType();
- if (var3 == 4) {
- NodeList var4 = this.nodeset();
- NodeList var5 = ((XNodeSet)var1).nodeset();
- int var6 = var4.getLength();
- int var7 = var5.getLength();
-
- for(int var8 = 0; var8 < var6; ++var8) {
- String var9 = getStringFromNode(var4.item(var8));
-
- for(int var10 = 0; var10 < var7; ++var10) {
- String var11 = getStringFromNode(var5.item(var10));
- if (var9.compareTo(var11) >= 0) {
- var2 = true;
- break;
- }
- }
- }
- } else if (var3 == 1) {
- double var12 = this.bool() ? (double)1.0F : (double)0.0F;
- double var18 = var1.num();
- var2 = var12 >= var18;
- } else if (var3 == 2) {
- NodeList var13 = this.nodeset();
- int var16 = var13.getLength();
- double var19 = var1.num();
-
- for(int var26 = 0; var26 < var16; ++var26) {
- double var30 = this.getNumberFromNode(var13.item(var26));
- if (var30 >= var19) {
- var2 = true;
- break;
- }
- }
- } else if (var3 == 5) {
- double var14 = var1.num();
- if (var14 != Double.NaN) {
- NodeList var20 = this.nodeset();
- int var23 = var20.getLength();
-
- for(int var27 = 0; var27 < var23; ++var27) {
- double var31 = this.getNumberFromNode(var20.item(var27));
- if (var31 >= var14) {
- var2 = true;
- break;
- }
- }
- } else {
- NodeList var21 = this.nodeset();
- int var24 = var21.getLength();
- String var28 = var1.str();
-
- for(int var32 = 0; var32 < var24; ++var32) {
- String var33 = getStringFromNode(var21.item(var32));
- if (var33.compareTo(var28) >= 0) {
- var2 = true;
- break;
- }
- }
- }
- } else if (var3 == 3) {
- NodeList var15 = this.nodeset();
- int var17 = var15.getLength();
- String var22 = var1.str();
-
- for(int var25 = 0; var25 < var17; ++var25) {
- String var29 = getStringFromNode(var15.item(var25));
- if (var29.compareTo(var22) >= 0) {
- var2 = true;
- break;
- }
- }
- } else {
- var2 = this.num() >= var1.num();
- }
-
- return var2;
- }
-
- public boolean equals(XObject var1) throws SAXException {
- boolean var2 = false;
- int var3 = var1.getType();
- if (var3 == 4) {
- NodeList var4 = this.nodeset();
- NodeList var5 = ((XNodeSet)var1).nodeset();
- int var6 = var4.getLength();
- int var7 = var5.getLength();
-
- for(int var8 = 0; var8 < var6; ++var8) {
- String var9 = getStringFromNode(var4.item(var8));
-
- for(int var10 = 0; var10 < var7; ++var10) {
- String var11 = getStringFromNode(var5.item(var10));
- if (var11.equals(var9)) {
- var2 = true;
- break;
- }
- }
- }
- } else if (var3 == 1) {
- var2 = this.bool() == var1.bool();
- } else if (var3 == 2) {
- NodeList var12 = this.nodeset();
- int var15 = var12.getLength();
- double var18 = var1.num();
-
- for(int var23 = 0; var23 < var15; ++var23) {
- double var26 = this.getNumberFromNode(var12.item(var23));
- if (var26 == var18) {
- var2 = true;
- break;
- }
- }
- } else if (var3 == 5) {
- NodeList var13 = this.nodeset();
- int var16 = var13.getLength();
- String var19 = var1.str();
-
- for(int var21 = 0; var21 < var16; ++var21) {
- String var24 = getStringFromNode(var13.item(var21));
- if (var24.equals(var19)) {
- var2 = true;
- break;
- }
- }
- } else if (var3 == 3) {
- NodeList var14 = this.nodeset();
- int var17 = var14.getLength();
- String var20 = var1.str();
-
- for(int var22 = 0; var22 < var17; ++var22) {
- String var25 = getStringFromNode(var14.item(var22));
- if (var25.equals(var20)) {
- var2 = true;
- break;
- }
- }
- } else {
- var2 = super.equals(var1);
- }
-
- return var2;
- }
-
- public boolean notEquals(XObject var1) throws SAXException {
- boolean var2 = false;
- int var3 = var1.getType();
- if (var3 == 4) {
- NodeList var4 = this.nodeset();
- NodeList var5 = ((XNodeSet)var1).nodeset();
- int var6 = var4.getLength();
- int var7 = var5.getLength();
-
- for(int var8 = 0; var8 < var6; ++var8) {
- String var9 = getStringFromNode(var4.item(var8));
-
- for(int var10 = 0; var10 < var7; ++var10) {
- String var11 = getStringFromNode(var5.item(var10));
- if (!var11.equals(var9)) {
- var2 = true;
- break;
- }
- }
- }
- } else if (var3 == 1) {
- var2 = this.bool() != var1.bool();
- } else if (var3 == 2) {
- NodeList var12 = this.nodeset();
- int var15 = var12.getLength();
- double var18 = var1.num();
-
- for(int var23 = 0; var23 < var15; ++var23) {
- double var26 = this.getNumberFromNode(var12.item(var23));
- if (var26 != var18) {
- var2 = true;
- break;
- }
- }
- } else if (var3 == 5) {
- NodeList var13 = this.nodeset();
- int var16 = var13.getLength();
- String var19 = var1.str();
-
- for(int var21 = 0; var21 < var16; ++var21) {
- String var24 = getStringFromNode(var13.item(var21));
- if (!var24.equals(var19)) {
- var2 = true;
- break;
- }
- }
- } else if (var3 == 3) {
- NodeList var14 = this.nodeset();
- int var17 = var14.getLength();
- String var20 = var1.str();
-
- for(int var22 = 0; var22 < var17; ++var22) {
- String var25 = getStringFromNode(var14.item(var22));
- if (!var25.equals(var20)) {
- var2 = true;
- break;
- }
- }
- } else {
- var2 = super.notEquals(var1);
- }
-
- return var2;
- }
- }
-